<!-- HTML header for doxygen 1.8.6-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/xhtml;charset=utf-8" http-equiv="Content-Type"/>
<meta content="IE=9" http-equiv="X-UA-Compatible"/>
<meta content="Doxygen 1.8.13" name="generator"/>
<title>OpenCV: cv::GComputation Class Reference</title>
<link href="../../opencv.ico" rel="shortcut icon" type="image/x-icon"/>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script src="../../jquery.js" type="text/javascript"></script>
<script src="../../dynsections.js" type="text/javascript"></script>
<script src="../../tutorial-utils.js" type="text/javascript"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script src="../../search/searchdata.js" type="text/javascript"></script>
<script src="../../search/search.js" type="text/javascript"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
//<![CDATA[
MathJax.Hub.Config(
{
  TeX: {
      Macros: {
          matTT: [ "\\[ \\left|\\begin{array}{ccc} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{array}\\right| \\]", 9],
          fork: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ \\end{array} \\right.", 4],
          forkthree: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ \\end{array} \\right.", 6],
          forkfour: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ #7 & \\mbox{#8}\\\\ \\end{array} \\right.", 8],
          vecthree: ["\\begin{bmatrix} #1\\\\ #2\\\\ #3 \\end{bmatrix}", 3],
          vecthreethree: ["\\begin{bmatrix} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{bmatrix}", 9],
          cameramatrix: ["#1 = \\begin{bmatrix} f_x & 0 & c_x\\\\ 0 & f_y & c_y\\\\ 0 & 0 & 1 \\end{bmatrix}", 1],
          distcoeffs: ["(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]]) \\text{ of 4, 5, 8, 12 or 14 elements}"],
          distcoeffsfisheye: ["(k_1, k_2, k_3, k_4)"],
          hdotsfor: ["\\dots", 1],
          mathbbm: ["\\mathbb{#1}", 1],
          bordermatrix: ["\\matrix{#1}", 1]
      }
  }
}
);
//]]>
</script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js" type="text/javascript"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css"/>
<link href="../../stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<!--#include virtual="/google-search.html"-->
<table cellpadding="0" cellspacing="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="../../opencv-logo-small.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">OpenCV
    <span id="projectnumber">4.5.2</span>
   </div>
   <div id="projectbrief">Open Source Computer Vision</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
</script>
<script src="../../menudata.js" type="text/javascript"></script>
<script src="../../menu.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
  initMenu('../../',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow" onkeydown="return searchBox.OnSearchSelectKey(event)" onmouseout="return searchBox.OnSearchSelectHide()" onmouseover="return searchBox.OnSearchSelectShow()">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe frameborder="0" id="MSearchResults" name="MSearchResults" src="javascript:void(0)">
</iframe>
</div>
<div class="navpath" id="nav-path">
  <ul>
<li class="navelem"><a class="el" href="../../d2/d75/namespacecv.html">cv</a></li><li class="navelem"><a class="el" href="../../d9/dfe/classcv_1_1GComputation.html">GComputation</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> |
<a href="#pub-methods">Public Member Functions</a> |
<a href="#pro-methods">Protected Member Functions</a> |
<a href="../../d4/d15/classcv_1_1GComputation-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">cv::GComputation Class Reference<div class="ingroups"><a class="el" href="../../d7/d0d/group__gapi.html">G-API framework</a> » <a class="el" href="../../d8/dd0/group__gapi__main__classes.html">G-API Main Classes</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<p><a class="el" href="../../d9/dfe/classcv_1_1GComputation.html" title="GComputation class represents a captured computation graph. GComputation objects form boundaries for ...">GComputation</a> class represents a captured computation graph. <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html" title="GComputation class represents a captured computation graph. GComputation objects form boundaries for ...">GComputation</a> objects form boundaries for expression code user writes with G-API, allowing to compile and execute it.  
 <a href="../../d9/dfe/classcv_1_1GComputation.html#details">More...</a></p>
<p><code>#include &lt;opencv2/gapi/gcomputation.hpp&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a28abdcac12137b03f6c4a4eb3ea504ee"><td align="right" class="memItemLeft" valign="top">typedef std::function&lt; <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html">GComputation</a>()&gt; </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#a28abdcac12137b03f6c4a4eb3ea504ee">Generator</a></td></tr>
<tr class="separator:a28abdcac12137b03f6c4a4eb3ea504ee"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a40c06a5481ce8e9277b7ac870c275351"><td align="right" class="memItemLeft" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#a40c06a5481ce8e9277b7ac870c275351">GComputation</a> (const <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#a28abdcac12137b03f6c4a4eb3ea504ee">Generator</a> &amp;gen)</td></tr>
<tr class="memdesc:a40c06a5481ce8e9277b7ac870c275351"><td class="mdescLeft"> </td><td class="mdescRight">Define a computation using a generator function.  <a href="#a40c06a5481ce8e9277b7ac870c275351">More...</a><br/></td></tr>
<tr class="separator:a40c06a5481ce8e9277b7ac870c275351"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a066ac0afde476a16178268aef300aa58"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../da/dfe/exports_8hpp.html#a11b787c5fb3561e507d6779531bab28a">GAPI_WRAP</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#a066ac0afde476a16178268aef300aa58">GComputation</a> (<a class="el" href="../../d2/d75/namespacecv.html#a94492d40d5a1d1b65cd7c1feca85a2ac">GProtoInputArgs</a> &amp;&amp;ins, <a class="el" href="../../d2/d75/namespacecv.html#a55216f8dcda54eef1b70f5c2063117af">GProtoOutputArgs</a> &amp;&amp;outs)</td></tr>
<tr class="memdesc:a066ac0afde476a16178268aef300aa58"><td class="mdescLeft"> </td><td class="mdescRight">Generic <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html" title="GComputation class represents a captured computation graph. GComputation objects form boundaries for ...">GComputation</a> constructor.  <a href="#a066ac0afde476a16178268aef300aa58">More...</a><br/></td></tr>
<tr class="separator:a066ac0afde476a16178268aef300aa58"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a9fb88a918758ebab829d2775750fd237"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../da/dfe/exports_8hpp.html#a11b787c5fb3561e507d6779531bab28a">GAPI_WRAP</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#a9fb88a918758ebab829d2775750fd237">GComputation</a> (<a class="el" href="../../df/daa/classcv_1_1GMat.html">GMat</a> in, <a class="el" href="../../df/daa/classcv_1_1GMat.html">GMat</a> out)</td></tr>
<tr class="memdesc:a9fb88a918758ebab829d2775750fd237"><td class="mdescLeft"> </td><td class="mdescRight">Defines an unary (one input – one output) computation.  <a href="#a9fb88a918758ebab829d2775750fd237">More...</a><br/></td></tr>
<tr class="separator:a9fb88a918758ebab829d2775750fd237"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a147325170a3941d9d4d3b29bef5dfb36"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../da/dfe/exports_8hpp.html#a11b787c5fb3561e507d6779531bab28a">GAPI_WRAP</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#a147325170a3941d9d4d3b29bef5dfb36">GComputation</a> (<a class="el" href="../../df/daa/classcv_1_1GMat.html">GMat</a> in, <a class="el" href="../../d9/d98/classcv_1_1GScalar.html">GScalar</a> out)</td></tr>
<tr class="memdesc:a147325170a3941d9d4d3b29bef5dfb36"><td class="mdescLeft"> </td><td class="mdescRight">Defines an unary (one input – one output) computation.  <a href="#a147325170a3941d9d4d3b29bef5dfb36">More...</a><br/></td></tr>
<tr class="separator:a147325170a3941d9d4d3b29bef5dfb36"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a6d5fba1995ca2d0a86a34d862ec7cc71"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../da/dfe/exports_8hpp.html#a11b787c5fb3561e507d6779531bab28a">GAPI_WRAP</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#a6d5fba1995ca2d0a86a34d862ec7cc71">GComputation</a> (<a class="el" href="../../df/daa/classcv_1_1GMat.html">GMat</a> in1, <a class="el" href="../../df/daa/classcv_1_1GMat.html">GMat</a> in2, <a class="el" href="../../df/daa/classcv_1_1GMat.html">GMat</a> out)</td></tr>
<tr class="memdesc:a6d5fba1995ca2d0a86a34d862ec7cc71"><td class="mdescLeft"> </td><td class="mdescRight">Defines a binary (two inputs – one output) computation.  <a href="#a6d5fba1995ca2d0a86a34d862ec7cc71">More...</a><br/></td></tr>
<tr class="separator:a6d5fba1995ca2d0a86a34d862ec7cc71"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aefa1d7ef9fe93241cdb0cc119ccdce4b"><td align="right" class="memItemLeft" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#aefa1d7ef9fe93241cdb0cc119ccdce4b">GComputation</a> (<a class="el" href="../../df/daa/classcv_1_1GMat.html">GMat</a> in1, <a class="el" href="../../df/daa/classcv_1_1GMat.html">GMat</a> in2, <a class="el" href="../../d9/d98/classcv_1_1GScalar.html">GScalar</a> out)</td></tr>
<tr class="memdesc:aefa1d7ef9fe93241cdb0cc119ccdce4b"><td class="mdescLeft"> </td><td class="mdescRight">Defines a binary (two inputs – one output) computation.  <a href="#aefa1d7ef9fe93241cdb0cc119ccdce4b">More...</a><br/></td></tr>
<tr class="separator:aefa1d7ef9fe93241cdb0cc119ccdce4b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ad20ff09a9522ef4203266d3bc5bb52e9"><td align="right" class="memItemLeft" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#ad20ff09a9522ef4203266d3bc5bb52e9">GComputation</a> (const std::vector&lt; <a class="el" href="../../df/daa/classcv_1_1GMat.html">GMat</a> &gt; &amp;ins, const std::vector&lt; <a class="el" href="../../df/daa/classcv_1_1GMat.html">GMat</a> &gt; &amp;outs)</td></tr>
<tr class="memdesc:ad20ff09a9522ef4203266d3bc5bb52e9"><td class="mdescLeft"> </td><td class="mdescRight">Defines a computation with arbitrary input/output number.  <a href="#ad20ff09a9522ef4203266d3bc5bb52e9">More...</a><br/></td></tr>
<tr class="separator:ad20ff09a9522ef4203266d3bc5bb52e9"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aa25bc73f7cba9bb2f9992edaa248f868"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#aa25bc73f7cba9bb2f9992edaa248f868">apply</a> (<a class="el" href="../../d2/d75/namespacecv.html#a3d9c032e5fe7892151570efc6ac08e51">GRunArgs</a> &amp;&amp;ins, <a class="el" href="../../d2/d75/namespacecv.html#a54832d96bd6bdd570c7ceb4127f6cad1">GRunArgsP</a> &amp;&amp;outs, <a class="el" href="../../d9/d29/group__gapi__compile__args.html#gaa4f8db4f55770e56cca42c38dacf8ffd">GCompileArgs</a> &amp;&amp;args={})</td></tr>
<tr class="memdesc:aa25bc73f7cba9bb2f9992edaa248f868"><td class="mdescLeft"> </td><td class="mdescRight">Compile graph on-the-fly and immediately execute it on the inputs data vectors.  <a href="#aa25bc73f7cba9bb2f9992edaa248f868">More...</a><br/></td></tr>
<tr class="separator:aa25bc73f7cba9bb2f9992edaa248f868"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aafd7a4d5103eafc398ebd15564ee059e"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#aafd7a4d5103eafc398ebd15564ee059e">apply</a> (<a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> in, <a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> &amp;out, <a class="el" href="../../d9/d29/group__gapi__compile__args.html#gaa4f8db4f55770e56cca42c38dacf8ffd">GCompileArgs</a> &amp;&amp;args={})</td></tr>
<tr class="memdesc:aafd7a4d5103eafc398ebd15564ee059e"><td class="mdescLeft"> </td><td class="mdescRight">Execute an unary computation (with compilation on the fly)  <a href="#aafd7a4d5103eafc398ebd15564ee059e">More...</a><br/></td></tr>
<tr class="separator:aafd7a4d5103eafc398ebd15564ee059e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a12fd86d3cc5140df37d6a8aa0a0f7230"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#a12fd86d3cc5140df37d6a8aa0a0f7230">apply</a> (<a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> in, <a class="el" href="../../dc/d84/group__core__basic.html#ga599fe92e910c027be274233eccad7beb">cv::Scalar</a> &amp;out, <a class="el" href="../../d9/d29/group__gapi__compile__args.html#gaa4f8db4f55770e56cca42c38dacf8ffd">GCompileArgs</a> &amp;&amp;args={})</td></tr>
<tr class="memdesc:a12fd86d3cc5140df37d6a8aa0a0f7230"><td class="mdescLeft"> </td><td class="mdescRight">Execute an unary computation (with compilation on the fly)  <a href="#a12fd86d3cc5140df37d6a8aa0a0f7230">More...</a><br/></td></tr>
<tr class="separator:a12fd86d3cc5140df37d6a8aa0a0f7230"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ad35660e432c5ec676fe2830eb8a9651b"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#ad35660e432c5ec676fe2830eb8a9651b">apply</a> (<a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> in1, <a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> in2, <a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> &amp;out, <a class="el" href="../../d9/d29/group__gapi__compile__args.html#gaa4f8db4f55770e56cca42c38dacf8ffd">GCompileArgs</a> &amp;&amp;args={})</td></tr>
<tr class="memdesc:ad35660e432c5ec676fe2830eb8a9651b"><td class="mdescLeft"> </td><td class="mdescRight">Execute a binary computation (with compilation on the fly)  <a href="#ad35660e432c5ec676fe2830eb8a9651b">More...</a><br/></td></tr>
<tr class="separator:ad35660e432c5ec676fe2830eb8a9651b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a4eb4b830d5cdf6891470a3b111b0e619"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#a4eb4b830d5cdf6891470a3b111b0e619">apply</a> (<a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> in1, <a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> in2, <a class="el" href="../../dc/d84/group__core__basic.html#ga599fe92e910c027be274233eccad7beb">cv::Scalar</a> &amp;out, <a class="el" href="../../d9/d29/group__gapi__compile__args.html#gaa4f8db4f55770e56cca42c38dacf8ffd">GCompileArgs</a> &amp;&amp;args={})</td></tr>
<tr class="memdesc:a4eb4b830d5cdf6891470a3b111b0e619"><td class="mdescLeft"> </td><td class="mdescRight">Execute an binary computation (with compilation on the fly)  <a href="#a4eb4b830d5cdf6891470a3b111b0e619">More...</a><br/></td></tr>
<tr class="separator:a4eb4b830d5cdf6891470a3b111b0e619"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:acacdf438026f43ec0db3d84e5b02d340"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#acacdf438026f43ec0db3d84e5b02d340">apply</a> (const std::vector&lt; <a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> &gt; &amp;ins, std::vector&lt; <a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> &gt; &amp;outs, <a class="el" href="../../d9/d29/group__gapi__compile__args.html#gaa4f8db4f55770e56cca42c38dacf8ffd">GCompileArgs</a> &amp;&amp;args={})</td></tr>
<tr class="memdesc:acacdf438026f43ec0db3d84e5b02d340"><td class="mdescLeft"> </td><td class="mdescRight">Execute a computation with arbitrary number of inputs/outputs (with compilation on-the-fly).  <a href="#acacdf438026f43ec0db3d84e5b02d340">More...</a><br/></td></tr>
<tr class="separator:acacdf438026f43ec0db3d84e5b02d340"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ab11bcc0578f9aa5ec8f8eaf6cda0dfa8"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html">GCompiled</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#ab11bcc0578f9aa5ec8f8eaf6cda0dfa8">compile</a> (<a class="el" href="../../d2/d75/namespacecv.html#a5f31109e95e8ff4ced55b5e85f885fb1">GMetaArgs</a> &amp;&amp;in_metas, <a class="el" href="../../d9/d29/group__gapi__compile__args.html#gaa4f8db4f55770e56cca42c38dacf8ffd">GCompileArgs</a> &amp;&amp;args={})</td></tr>
<tr class="memdesc:ab11bcc0578f9aa5ec8f8eaf6cda0dfa8"><td class="mdescLeft"> </td><td class="mdescRight">Compile the computation for specific input format(s).  <a href="#ab11bcc0578f9aa5ec8f8eaf6cda0dfa8">More...</a><br/></td></tr>
<tr class="separator:ab11bcc0578f9aa5ec8f8eaf6cda0dfa8"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a3c996ca8f04d5809b82191aae04a34ac"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
<tr class="memitem:a3c996ca8f04d5809b82191aae04a34ac"><td align="right" class="memTemplItemLeft" valign="top">auto </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#a3c996ca8f04d5809b82191aae04a34ac">compile</a> (const Ts &amp;... metas) -&gt; typename std::enable_if&lt; <a class="el" href="../../d2/daf/namespacecv_1_1detail.html#aa9a2d974aa7c71968bfd9649ee903a36">detail::are_meta_descrs</a>&lt; Ts... &gt;::value, <a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html">GCompiled</a> &gt;::type</td></tr>
<tr class="separator:a3c996ca8f04d5809b82191aae04a34ac"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a86a31579919bfba49316f27093829abc"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
<tr class="memitem:a86a31579919bfba49316f27093829abc"><td align="right" class="memTemplItemLeft" valign="top">auto </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#a86a31579919bfba49316f27093829abc">compile</a> (const Ts &amp;... meta_and_compile_args) -&gt; typename std::enable_if&lt; <a class="el" href="../../d2/daf/namespacecv_1_1detail.html#a573723d31cccc765fe39151fe46a3649">detail::are_meta_descrs_but_last</a>&lt; Ts... &gt;::value &amp;&amp;std::is_same&lt; <a class="el" href="../../d9/d29/group__gapi__compile__args.html#gaa4f8db4f55770e56cca42c38dacf8ffd">GCompileArgs</a>, <a class="el" href="../../d2/daf/namespacecv_1_1detail.html#a54c86c866fa8c3de8a26cbbeaa22927f">detail::last_type_t</a>&lt; Ts... &gt; &gt;::value, <a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html">GCompiled</a> &gt;::type</td></tr>
<tr class="separator:a86a31579919bfba49316f27093829abc"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a53af72f7dafa8cbf416581628aaa32fd"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html">GStreamingCompiled</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#a53af72f7dafa8cbf416581628aaa32fd">compileStreaming</a> (<a class="el" href="../../d2/d75/namespacecv.html#a5f31109e95e8ff4ced55b5e85f885fb1">GMetaArgs</a> &amp;&amp;in_metas, <a class="el" href="../../d9/d29/group__gapi__compile__args.html#gaa4f8db4f55770e56cca42c38dacf8ffd">GCompileArgs</a> &amp;&amp;args={})</td></tr>
<tr class="memdesc:a53af72f7dafa8cbf416581628aaa32fd"><td class="mdescLeft"> </td><td class="mdescRight">Compile the computation for streaming mode.  <a href="#a53af72f7dafa8cbf416581628aaa32fd">More...</a><br/></td></tr>
<tr class="separator:a53af72f7dafa8cbf416581628aaa32fd"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aad0eedf58f125efd3fe9ce61cebe6cfa"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../da/dfe/exports_8hpp.html#a11b787c5fb3561e507d6779531bab28a">GAPI_WRAP</a> <a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html">GStreamingCompiled</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#aad0eedf58f125efd3fe9ce61cebe6cfa">compileStreaming</a> (<a class="el" href="../../d9/d29/group__gapi__compile__args.html#gaa4f8db4f55770e56cca42c38dacf8ffd">GCompileArgs</a> &amp;&amp;args={})</td></tr>
<tr class="memdesc:aad0eedf58f125efd3fe9ce61cebe6cfa"><td class="mdescLeft"> </td><td class="mdescRight">Compile the computation for streaming mode.  <a href="#aad0eedf58f125efd3fe9ce61cebe6cfa">More...</a><br/></td></tr>
<tr class="separator:aad0eedf58f125efd3fe9ce61cebe6cfa"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aaadc813c176e6a992c76e51d07090cef"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
<tr class="memitem:aaadc813c176e6a992c76e51d07090cef"><td align="right" class="memTemplItemLeft" valign="top">auto </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#aaadc813c176e6a992c76e51d07090cef">compileStreaming</a> (const Ts &amp;... metas) -&gt; typename std::enable_if&lt; <a class="el" href="../../d2/daf/namespacecv_1_1detail.html#aa9a2d974aa7c71968bfd9649ee903a36">detail::are_meta_descrs</a>&lt; Ts... &gt;::value, <a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html">GStreamingCompiled</a> &gt;::type</td></tr>
<tr class="separator:aaadc813c176e6a992c76e51d07090cef"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aa2a3cae818b02d21ace48f348cb88a0a"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
<tr class="memitem:aa2a3cae818b02d21ace48f348cb88a0a"><td align="right" class="memTemplItemLeft" valign="top">auto </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#aa2a3cae818b02d21ace48f348cb88a0a">compileStreaming</a> (const Ts &amp;... meta_and_compile_args) -&gt; typename std::enable_if&lt; <a class="el" href="../../d2/daf/namespacecv_1_1detail.html#a573723d31cccc765fe39151fe46a3649">detail::are_meta_descrs_but_last</a>&lt; Ts... &gt;::value &amp;&amp;std::is_same&lt; <a class="el" href="../../d9/d29/group__gapi__compile__args.html#gaa4f8db4f55770e56cca42c38dacf8ffd">GCompileArgs</a>, <a class="el" href="../../d2/daf/namespacecv_1_1detail.html#a54c86c866fa8c3de8a26cbbeaa22927f">detail::last_type_t</a>&lt; Ts... &gt; &gt;::value, <a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html">GStreamingCompiled</a> &gt;::type</td></tr>
<tr class="separator:aa2a3cae818b02d21ace48f348cb88a0a"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a731e812ec6ba458983dc10cc0df40325"><td class="memTemplParams" colspan="2">template&lt;typename... Ts, int... IIs&gt; </td></tr>
<tr class="memitem:a731e812ec6ba458983dc10cc0df40325"><td align="right" class="memTemplItemLeft" valign="top"><a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html">GStreamingCompiled</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#a731e812ec6ba458983dc10cc0df40325">compileStreaming</a> (const std::tuple&lt; Ts... &gt; &amp;meta_and_compile_args, detail::Seq&lt; IIs... &gt;)</td></tr>
<tr class="separator:a731e812ec6ba458983dc10cc0df40325"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a81667be7e7b03f8bcc534fa35e8e475e"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#a81667be7e7b03f8bcc534fa35e8e475e">recompile</a> (<a class="el" href="../../d2/d75/namespacecv.html#a5f31109e95e8ff4ced55b5e85f885fb1">GMetaArgs</a> &amp;&amp;in_metas, <a class="el" href="../../d9/d29/group__gapi__compile__args.html#gaa4f8db4f55770e56cca42c38dacf8ffd">GCompileArgs</a> &amp;&amp;args)</td></tr>
<tr class="separator:a81667be7e7b03f8bcc534fa35e8e475e"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a id="details" name="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a class="el" href="../../d9/dfe/classcv_1_1GComputation.html" title="GComputation class represents a captured computation graph. GComputation objects form boundaries for ...">GComputation</a> class represents a captured computation graph. <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html" title="GComputation class represents a captured computation graph. GComputation objects form boundaries for ...">GComputation</a> objects form boundaries for expression code user writes with G-API, allowing to compile and execute it. </p>
<p>G-API computations are defined with input/output data objects. G-API will track automatically which operations connect specified outputs to the inputs, forming up a call graph to be executed. The below example expresses calculation of Sobel operator for edge detection ( \(G = \sqrt{G_x^2 + G_y^2}\)):</p>
<div class="fragment"><div class="line">    <a class="code" href="../../df/daa/classcv_1_1GMat.html">cv::GMat</a> in;</div><div class="line">    <a class="code" href="../../df/daa/classcv_1_1GMat.html">cv::GMat</a> gx = <a class="code" href="../../da/dc5/group__gapi__filters.html#gae1443445c4cb3187dcf439a57cfa534f">cv::gapi::Sobel</a>(in, <a class="code" href="../../d1/d1b/group__core__hal__interface.html#ga4a3def5d72b74bed31f5f8ab7676099c">CV_32F</a>, 1, 0);</div><div class="line">    <a class="code" href="../../df/daa/classcv_1_1GMat.html">cv::GMat</a> gy = <a class="code" href="../../da/dc5/group__gapi__filters.html#gae1443445c4cb3187dcf439a57cfa534f">cv::gapi::Sobel</a>(in, <a class="code" href="../../d1/d1b/group__core__hal__interface.html#ga4a3def5d72b74bed31f5f8ab7676099c">CV_32F</a>, 0, 1);</div><div class="line">    <a class="code" href="../../df/daa/classcv_1_1GMat.html">cv::GMat</a> g  = <a class="code" href="../../da/dd3/group__gapi__math.html#gaf3880c8feae9027fa91a701a1fd0d3b4">cv::gapi::sqrt</a>(<a class="code" href="../../da/dd3/group__gapi__math.html#ga42a8187b2bf350f90e4a31f93e929e51">cv::gapi::mul</a>(gx, gx) + <a class="code" href="../../da/dd3/group__gapi__math.html#ga42a8187b2bf350f90e4a31f93e929e51">cv::gapi::mul</a>(gy, gy));</div><div class="line">    <a class="code" href="../../df/daa/classcv_1_1GMat.html">cv::GMat</a> out = <a class="code" href="../../d6/d91/group__gapi__transform.html#gae972b2c91904d36e92ee14a6778db82e">cv::gapi::convertTo</a>(g, <a class="code" href="../../d1/d1b/group__core__hal__interface.html#ga32b18d904ee2b1731a9416a8eef67d06">CV_8U</a>);</div></div><!-- fragment --><p> Full pipeline can be now captured with this object declaration:</p>
<div class="fragment"><div class="line">    <a class="code" href="../../d9/dfe/classcv_1_1GComputation.html">cv::GComputation</a> sobelEdge(<a class="code" href="../../d2/d75/namespacecv.html#a8e40d34081b18c79ba4c3cfb9fd0634f">cv::GIn</a>(in), <a class="code" href="../../d2/d75/namespacecv.html#adaa9a308669926cecc4793c6e4449629">cv::GOut</a>(out));</div></div><!-- fragment --><p> Input/output data objects on which a call graph should be reconstructed are passed using special wrappers <a class="el" href="../../d2/d75/namespacecv.html#a8e40d34081b18c79ba4c3cfb9fd0634f">cv::GIn</a> and <a class="el" href="../../d2/d75/namespacecv.html#adaa9a308669926cecc4793c6e4449629">cv::GOut</a>. G-API will track automatically which operations form a path from inputs to outputs and build the execution graph appropriately.</p>
<p>Note that <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html" title="GComputation class represents a captured computation graph. GComputation objects form boundaries for ...">cv::GComputation</a> doesn't take ownership on data objects it is defined. Moreover, multiple <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html" title="GComputation class represents a captured computation graph. GComputation objects form boundaries for ...">GComputation</a> objects may be defined on the same expressions, e.g. a smaller pipeline which expects that image gradients are already pre-calculated may be defined like this:</p>
<div class="fragment"><div class="line">    <a class="code" href="../../d9/dfe/classcv_1_1GComputation.html">cv::GComputation</a> sobelEdgeSub(<a class="code" href="../../d2/d75/namespacecv.html#a8e40d34081b18c79ba4c3cfb9fd0634f">cv::GIn</a>(gx, gy), <a class="code" href="../../d2/d75/namespacecv.html#adaa9a308669926cecc4793c6e4449629">cv::GOut</a>(out));</div></div><!-- fragment --><p> The resulting graph would expect two inputs and produce one output. In this case, it doesn't matter if gx/gy data objects are results of <a class="el" href="../../da/dc5/group__gapi__filters.html#gae1443445c4cb3187dcf439a57cfa534f" title="Calculates the first, second, third, or mixed image derivatives using an extended Sobel operator...">cv::gapi::Sobel</a> operators – G-API will stop unrolling expressions and building the underlying graph one reaching this data objects.</p>
<p>The way how <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html" title="GComputation class represents a captured computation graph. GComputation objects form boundaries for ...">GComputation</a> is defined is important as its definition specifies graph <em>protocol</em> – the way how the graph should be used. Protocol is defined by number of inputs, number of outputs, and shapes of inputs and outputs.</p>
<p>In the above example, sobelEdge expects one <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">Mat</a> on input and produces one <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">Mat</a>; while sobelEdgeSub expects two Mats on input and produces one <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">Mat</a>. <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html" title="GComputation class represents a captured computation graph. GComputation objects form boundaries for ...">GComputation</a>'s protocol defines how other computation methods should be used – <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#ab11bcc0578f9aa5ec8f8eaf6cda0dfa8" title="Compile the computation for specific input format(s). ">cv::GComputation::compile()</a> and <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#aa25bc73f7cba9bb2f9992edaa248f868" title="Compile graph on-the-fly and immediately execute it on the inputs data vectors. ">cv::GComputation::apply()</a>. For example, if a graph is defined on two <a class="el" href="../../df/daa/classcv_1_1GMat.html">GMat</a> inputs, two <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">cv::Mat</a> objects have to be passed to <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#aa25bc73f7cba9bb2f9992edaa248f868" title="Compile graph on-the-fly and immediately execute it on the inputs data vectors. ">apply()</a> for execution. <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html" title="GComputation class represents a captured computation graph. GComputation objects form boundaries for ...">GComputation</a> checks protocol correctness in runtime so passing a different number of objects in <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#aa25bc73f7cba9bb2f9992edaa248f868" title="Compile graph on-the-fly and immediately execute it on the inputs data vectors. ">apply()</a> or passing <a class="el" href="../../dc/d84/group__core__basic.html#ga599fe92e910c027be274233eccad7beb">cv::Scalar</a> instead of <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">cv::Mat</a> there would compile well as a C++ source but raise an exception in run-time. G-API also comes with a typed wrapper cv::GComputationT&lt;&gt; which introduces this type-checking in compile-time.</p>
<p><a class="el" href="../../d9/dfe/classcv_1_1GComputation.html" title="GComputation class represents a captured computation graph. GComputation objects form boundaries for ...">cv::GComputation</a> itself is a thin object which just captures what the graph is. The compiled graph (which actually process data) is represented by class <a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html" title="Represents a compiled computation (graph). Can only be used with image / data formats &amp; resolutions i...">GCompiled</a>. Use <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#ab11bcc0578f9aa5ec8f8eaf6cda0dfa8" title="Compile the computation for specific input format(s). ">compile()</a> method to generate a compiled graph with given compile options. <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html" title="GComputation class represents a captured computation graph. GComputation objects form boundaries for ...">cv::GComputation</a> can also be used to process data with implicit graph compilation on-the-fly, see <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#aa25bc73f7cba9bb2f9992edaa248f868" title="Compile graph on-the-fly and immediately execute it on the inputs data vectors. ">apply()</a> for details.</p>
<p><a class="el" href="../../d9/dfe/classcv_1_1GComputation.html" title="GComputation class represents a captured computation graph. GComputation objects form boundaries for ...">GComputation</a> is a reference-counted object – once defined, all its copies will refer to the same instance.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html" title="Represents a compiled computation (graph). Can only be used with image / data formats &amp; resolutions i...">GCompiled</a> </dd></dl>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a id="a28abdcac12137b03f6c4a4eb3ea504ee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a28abdcac12137b03f6c4a4eb3ea504ee">◆ </a></span>Generator</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::function&lt;<a class="el" href="../../d9/dfe/classcv_1_1GComputation.html">GComputation</a>()&gt; <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#a28abdcac12137b03f6c4a4eb3ea504ee">cv::GComputation::Generator</a></td>
        </tr>
      </table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a40c06a5481ce8e9277b7ac870c275351"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a40c06a5481ce8e9277b7ac870c275351">◆ </a></span>GComputation() <span class="overload">[1/7]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cv::GComputation::GComputation </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#a28abdcac12137b03f6c4a4eb3ea504ee">Generator</a> &amp; </td>
          <td class="paramname"><em>gen</em></td><td>)</td>
          <td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>&lt;GComputation object&gt;</td><td>=</td><td>cv.GComputation(</td><td class="paramname">ins, outs</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>&lt;GComputation object&gt;</td><td>=</td><td>cv.GComputation(</td><td class="paramname">in, out</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>&lt;GComputation object&gt;</td><td>=</td><td>cv.GComputation(</td><td class="paramname">in1, in2, out</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Define a computation using a generator function. </p>
<p>Graph can be defined in-place directly at the moment of its construction with a lambda:</p>
<div class="fragment"><div class="line">    <a class="code" href="../../d9/dfe/classcv_1_1GComputation.html">cv::GComputation</a> sobelEdgeGen([](){</div><div class="line">            <a class="code" href="../../df/daa/classcv_1_1GMat.html">cv::GMat</a> in;</div><div class="line">            <a class="code" href="../../df/daa/classcv_1_1GMat.html">cv::GMat</a> gx = <a class="code" href="../../da/dc5/group__gapi__filters.html#gae1443445c4cb3187dcf439a57cfa534f">cv::gapi::Sobel</a>(in, <a class="code" href="../../d1/d1b/group__core__hal__interface.html#ga4a3def5d72b74bed31f5f8ab7676099c">CV_32F</a>, 1, 0);</div><div class="line">            <a class="code" href="../../df/daa/classcv_1_1GMat.html">cv::GMat</a> gy = <a class="code" href="../../da/dc5/group__gapi__filters.html#gae1443445c4cb3187dcf439a57cfa534f">cv::gapi::Sobel</a>(in, <a class="code" href="../../d1/d1b/group__core__hal__interface.html#ga4a3def5d72b74bed31f5f8ab7676099c">CV_32F</a>, 0, 1);</div><div class="line">            <a class="code" href="../../df/daa/classcv_1_1GMat.html">cv::GMat</a> g  = <a class="code" href="../../da/dd3/group__gapi__math.html#gaf3880c8feae9027fa91a701a1fd0d3b4">cv::gapi::sqrt</a>(<a class="code" href="../../da/dd3/group__gapi__math.html#ga42a8187b2bf350f90e4a31f93e929e51">cv::gapi::mul</a>(gx, gx) + <a class="code" href="../../da/dd3/group__gapi__math.html#ga42a8187b2bf350f90e4a31f93e929e51">cv::gapi::mul</a>(gy, gy));</div><div class="line">            <a class="code" href="../../df/daa/classcv_1_1GMat.html">cv::GMat</a> out = <a class="code" href="../../d6/d91/group__gapi__transform.html#gae972b2c91904d36e92ee14a6778db82e">cv::gapi::convertTo</a>(g, <a class="code" href="../../d1/d1b/group__core__hal__interface.html#ga32b18d904ee2b1731a9416a8eef67d06">CV_8U</a>);</div><div class="line">            <span class="keywordflow">return</span> <a class="code" href="../../d9/dfe/classcv_1_1GComputation.html">cv::GComputation</a>(in, out);</div><div class="line">        });</div></div><!-- fragment --><p> This may be useful since all temporary objects (cv::GMats) and namespaces can be localized to scope of lambda, without contaminating the parent scope with probably unnecessary objects and information.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">gen</td><td>generator function which returns a <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html" title="GComputation class represents a captured computation graph. GComputation objects form boundaries for ...">cv::GComputation</a>, see Generator. </td></tr>
  </table>
  </dd>
</dl>
</div>
</div>
<a id="a066ac0afde476a16178268aef300aa58"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a066ac0afde476a16178268aef300aa58">◆ </a></span>GComputation() <span class="overload">[2/7]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../da/dfe/exports_8hpp.html#a11b787c5fb3561e507d6779531bab28a">GAPI_WRAP</a> cv::GComputation::GComputation </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d2/d75/namespacecv.html#a94492d40d5a1d1b65cd7c1feca85a2ac">GProtoInputArgs</a> &amp;&amp; </td>
          <td class="paramname"><em>ins</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d2/d75/namespacecv.html#a55216f8dcda54eef1b70f5c2063117af">GProtoOutputArgs</a> &amp;&amp; </td>
          <td class="paramname"><em>outs</em> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>&lt;GComputation object&gt;</td><td>=</td><td>cv.GComputation(</td><td class="paramname">ins, outs</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>&lt;GComputation object&gt;</td><td>=</td><td>cv.GComputation(</td><td class="paramname">in, out</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>&lt;GComputation object&gt;</td><td>=</td><td>cv.GComputation(</td><td class="paramname">in1, in2, out</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Generic <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html" title="GComputation class represents a captured computation graph. GComputation objects form boundaries for ...">GComputation</a> constructor. </p>
<p>Constructs a new graph with a given protocol, specified as a flow of operations connecting input/output objects. Throws if the passed boundaries are invalid, e.g. if there's no functional dependency (path) between given outputs and inputs.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ins</td><td>Input data vector. </td></tr>
    <tr><td class="paramname">outs</td><td>Output data vector.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>Don't construct GProtoInputArgs/GProtoOutputArgs objects directly, use <a class="el" href="../../d2/d75/namespacecv.html#a8e40d34081b18c79ba4c3cfb9fd0634f">cv::GIn()</a>/cv<a class="el" href="../../d2/d75/namespacecv.html#adaa9a308669926cecc4793c6e4449629">GOut()</a> wrapper functions instead.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="../../db/df1/group__gapi__data__objects.html">G-API Data Types</a> </dd></dl>
</div>
</div>
<a id="a9fb88a918758ebab829d2775750fd237"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9fb88a918758ebab829d2775750fd237">◆ </a></span>GComputation() <span class="overload">[3/7]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../da/dfe/exports_8hpp.html#a11b787c5fb3561e507d6779531bab28a">GAPI_WRAP</a> cv::GComputation::GComputation </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../df/daa/classcv_1_1GMat.html">GMat</a> </td>
          <td class="paramname"><em>in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../df/daa/classcv_1_1GMat.html">GMat</a> </td>
          <td class="paramname"><em>out</em> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>&lt;GComputation object&gt;</td><td>=</td><td>cv.GComputation(</td><td class="paramname">ins, outs</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>&lt;GComputation object&gt;</td><td>=</td><td>cv.GComputation(</td><td class="paramname">in, out</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>&lt;GComputation object&gt;</td><td>=</td><td>cv.GComputation(</td><td class="paramname">in1, in2, out</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Defines an unary (one input – one output) computation. </p>
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">in</td><td>input <a class="el" href="../../df/daa/classcv_1_1GMat.html">GMat</a> of the defined unary computation </td></tr>
    <tr><td class="paramname">out</td><td>output <a class="el" href="../../df/daa/classcv_1_1GMat.html">GMat</a> of the defined unary computation </td></tr>
  </table>
  </dd>
</dl>
</div>
</div>
<a id="a147325170a3941d9d4d3b29bef5dfb36"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a147325170a3941d9d4d3b29bef5dfb36">◆ </a></span>GComputation() <span class="overload">[4/7]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../da/dfe/exports_8hpp.html#a11b787c5fb3561e507d6779531bab28a">GAPI_WRAP</a> cv::GComputation::GComputation </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../df/daa/classcv_1_1GMat.html">GMat</a> </td>
          <td class="paramname"><em>in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d9/d98/classcv_1_1GScalar.html">GScalar</a> </td>
          <td class="paramname"><em>out</em> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>&lt;GComputation object&gt;</td><td>=</td><td>cv.GComputation(</td><td class="paramname">ins, outs</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>&lt;GComputation object&gt;</td><td>=</td><td>cv.GComputation(</td><td class="paramname">in, out</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>&lt;GComputation object&gt;</td><td>=</td><td>cv.GComputation(</td><td class="paramname">in1, in2, out</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Defines an unary (one input – one output) computation. </p>
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">in</td><td>input <a class="el" href="../../df/daa/classcv_1_1GMat.html">GMat</a> of the defined unary computation </td></tr>
    <tr><td class="paramname">out</td><td>output <a class="el" href="../../d9/d98/classcv_1_1GScalar.html">GScalar</a> of the defined unary computation </td></tr>
  </table>
  </dd>
</dl>
</div>
</div>
<a id="a6d5fba1995ca2d0a86a34d862ec7cc71"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6d5fba1995ca2d0a86a34d862ec7cc71">◆ </a></span>GComputation() <span class="overload">[5/7]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../da/dfe/exports_8hpp.html#a11b787c5fb3561e507d6779531bab28a">GAPI_WRAP</a> cv::GComputation::GComputation </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../df/daa/classcv_1_1GMat.html">GMat</a> </td>
          <td class="paramname"><em>in1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../df/daa/classcv_1_1GMat.html">GMat</a> </td>
          <td class="paramname"><em>in2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../df/daa/classcv_1_1GMat.html">GMat</a> </td>
          <td class="paramname"><em>out</em> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>&lt;GComputation object&gt;</td><td>=</td><td>cv.GComputation(</td><td class="paramname">ins, outs</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>&lt;GComputation object&gt;</td><td>=</td><td>cv.GComputation(</td><td class="paramname">in, out</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>&lt;GComputation object&gt;</td><td>=</td><td>cv.GComputation(</td><td class="paramname">in1, in2, out</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Defines a binary (two inputs – one output) computation. </p>
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">in1</td><td>first input <a class="el" href="../../df/daa/classcv_1_1GMat.html">GMat</a> of the defined binary computation </td></tr>
    <tr><td class="paramname">in2</td><td>second input <a class="el" href="../../df/daa/classcv_1_1GMat.html">GMat</a> of the defined binary computation </td></tr>
    <tr><td class="paramname">out</td><td>output <a class="el" href="../../df/daa/classcv_1_1GMat.html">GMat</a> of the defined binary computation </td></tr>
  </table>
  </dd>
</dl>
</div>
</div>
<a id="aefa1d7ef9fe93241cdb0cc119ccdce4b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aefa1d7ef9fe93241cdb0cc119ccdce4b">◆ </a></span>GComputation() <span class="overload">[6/7]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cv::GComputation::GComputation </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../df/daa/classcv_1_1GMat.html">GMat</a> </td>
          <td class="paramname"><em>in1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../df/daa/classcv_1_1GMat.html">GMat</a> </td>
          <td class="paramname"><em>in2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d9/d98/classcv_1_1GScalar.html">GScalar</a> </td>
          <td class="paramname"><em>out</em> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>&lt;GComputation object&gt;</td><td>=</td><td>cv.GComputation(</td><td class="paramname">ins, outs</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>&lt;GComputation object&gt;</td><td>=</td><td>cv.GComputation(</td><td class="paramname">in, out</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>&lt;GComputation object&gt;</td><td>=</td><td>cv.GComputation(</td><td class="paramname">in1, in2, out</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Defines a binary (two inputs – one output) computation. </p>
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">in1</td><td>first input <a class="el" href="../../df/daa/classcv_1_1GMat.html">GMat</a> of the defined binary computation </td></tr>
    <tr><td class="paramname">in2</td><td>second input <a class="el" href="../../df/daa/classcv_1_1GMat.html">GMat</a> of the defined binary computation </td></tr>
    <tr><td class="paramname">out</td><td>output <a class="el" href="../../d9/d98/classcv_1_1GScalar.html">GScalar</a> of the defined binary computation </td></tr>
  </table>
  </dd>
</dl>
</div>
</div>
<a id="ad20ff09a9522ef4203266d3bc5bb52e9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad20ff09a9522ef4203266d3bc5bb52e9">◆ </a></span>GComputation() <span class="overload">[7/7]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cv::GComputation::GComputation </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="../../df/daa/classcv_1_1GMat.html">GMat</a> &gt; &amp; </td>
          <td class="paramname"><em>ins</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="../../df/daa/classcv_1_1GMat.html">GMat</a> &gt; &amp; </td>
          <td class="paramname"><em>outs</em> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>&lt;GComputation object&gt;</td><td>=</td><td>cv.GComputation(</td><td class="paramname">ins, outs</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>&lt;GComputation object&gt;</td><td>=</td><td>cv.GComputation(</td><td class="paramname">in, out</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>&lt;GComputation object&gt;</td><td>=</td><td>cv.GComputation(</td><td class="paramname">in1, in2, out</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Defines a computation with arbitrary input/output number. </p>
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ins</td><td>vector of inputs GMats for this computation </td></tr>
    <tr><td class="paramname">outs</td><td>vector of outputs GMats for this computation</td></tr>
  </table>
  </dd>
</dl>
<p>Use this overload for cases when number of computation inputs/outputs is not known in compile-time – e.g. when graph is programmatically generated to build an image pyramid with the given number of levels, etc. </p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="aa25bc73f7cba9bb2f9992edaa248f868"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa25bc73f7cba9bb2f9992edaa248f868">◆ </a></span>apply() <span class="overload">[1/6]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::GComputation::apply </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d2/d75/namespacecv.html#a3d9c032e5fe7892151570efc6ac08e51">GRunArgs</a> &amp;&amp; </td>
          <td class="paramname"><em>ins</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d2/d75/namespacecv.html#a54832d96bd6bdd570c7ceb4127f6cad1">GRunArgsP</a> &amp;&amp; </td>
          <td class="paramname"><em>outs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d9/d29/group__gapi__compile__args.html#gaa4f8db4f55770e56cca42c38dacf8ffd">GCompileArgs</a> &amp;&amp; </td>
          <td class="paramname"><em>args</em> = <code>{}</code> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.GComputation.apply(</td><td class="paramname">callback[, args]</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Compile graph on-the-fly and immediately execute it on the inputs data vectors. </p>
<p>Number of input/output data objects must match <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html" title="GComputation class represents a captured computation graph. GComputation objects form boundaries for ...">GComputation</a>'s protocol, also types of host data objects (<a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">cv::Mat</a>, <a class="el" href="../../dc/d84/group__core__basic.html#ga599fe92e910c027be274233eccad7beb">cv::Scalar</a>) must match the shapes of data objects from protocol (<a class="el" href="../../df/daa/classcv_1_1GMat.html">cv::GMat</a>, <a class="el" href="../../d9/d98/classcv_1_1GScalar.html">cv::GScalar</a>). If there's a mismatch, a run-time exception will be generated.</p>
<p>Internally, a <a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html" title="Represents a compiled computation (graph). Can only be used with image / data formats &amp; resolutions i...">cv::GCompiled</a> object is created for the given input format configuration, which then is executed on the input data immediately. <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html" title="GComputation class represents a captured computation graph. GComputation objects form boundaries for ...">cv::GComputation</a> caches compiled objects produced within <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#aa25bc73f7cba9bb2f9992edaa248f868" title="Compile graph on-the-fly and immediately execute it on the inputs data vectors. ">apply()</a> – if this method would be called next time with the same input parameters (image formats, image resolution, etc), the underlying compiled graph will be reused without recompilation. If new metadata doesn't match the cached one, the underlying compiled graph is regenerated.</p>
<dl class="section note"><dt>Note</dt><dd><a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#ab11bcc0578f9aa5ec8f8eaf6cda0dfa8" title="Compile the computation for specific input format(s). ">compile()</a> always triggers a compilation process and produces a new <a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html" title="Represents a compiled computation (graph). Can only be used with image / data formats &amp; resolutions i...">GCompiled</a> object regardless if a similar one has been cached via <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#aa25bc73f7cba9bb2f9992edaa248f868" title="Compile graph on-the-fly and immediately execute it on the inputs data vectors. ">apply()</a> or not.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ins</td><td>vector of input data to process. Don't create GRunArgs object manually, use <a class="el" href="../../d2/d75/namespacecv.html#a4941eb8cbe70b8c7187bc8459af7653b">cv::gin()</a> wrapper instead. </td></tr>
    <tr><td class="paramname">outs</td><td>vector of output data to fill results in. <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">cv::Mat</a> objects may be empty in this vector, G-API will automatically initialize it with the required format &amp; dimensions. Don't create GRunArgsP object manually, use <a class="el" href="../../d2/d75/namespacecv.html#ac82b8a261b82157293b603b55c096a9e">cv::gout()</a> wrapper instead. </td></tr>
    <tr><td class="paramname">args</td><td>a list of compilation arguments to pass to the underlying compilation process. Don't create GCompileArgs object manually, use <a class="el" href="../../d9/d29/group__gapi__compile__args.html#ga3ccf2a52953f18bb3e4c01243cc4e679" title="Wraps a list of arguments (a parameter pack) into a vector of compilation arguments (cv::GCompileArg)...">cv::compile_args()</a> wrapper instead.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="../../db/df1/group__gapi__data__objects.html">G-API Data Types</a>, <a class="el" href="../../d9/d29/group__gapi__compile__args.html">G-API Graph Compilation Arguments</a> </dd></dl>
</div>
</div>
<a id="aafd7a4d5103eafc398ebd15564ee059e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aafd7a4d5103eafc398ebd15564ee059e">◆ </a></span>apply() <span class="overload">[2/6]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::GComputation::apply </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> </td>
          <td class="paramname"><em>in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> &amp; </td>
          <td class="paramname"><em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d9/d29/group__gapi__compile__args.html#gaa4f8db4f55770e56cca42c38dacf8ffd">GCompileArgs</a> &amp;&amp; </td>
          <td class="paramname"><em>args</em> = <code>{}</code> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.GComputation.apply(</td><td class="paramname">callback[, args]</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Execute an unary computation (with compilation on the fly) </p>
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">in</td><td>input <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">cv::Mat</a> for unary computation </td></tr>
    <tr><td class="paramname">out</td><td>output <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">cv::Mat</a> for unary computation </td></tr>
    <tr><td class="paramname">args</td><td>compilation arguments for underlying compilation process. </td></tr>
  </table>
  </dd>
</dl>
</div>
</div>
<a id="a12fd86d3cc5140df37d6a8aa0a0f7230"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a12fd86d3cc5140df37d6a8aa0a0f7230">◆ </a></span>apply() <span class="overload">[3/6]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::GComputation::apply </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> </td>
          <td class="paramname"><em>in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga599fe92e910c027be274233eccad7beb">cv::Scalar</a> &amp; </td>
          <td class="paramname"><em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d9/d29/group__gapi__compile__args.html#gaa4f8db4f55770e56cca42c38dacf8ffd">GCompileArgs</a> &amp;&amp; </td>
          <td class="paramname"><em>args</em> = <code>{}</code> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.GComputation.apply(</td><td class="paramname">callback[, args]</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Execute an unary computation (with compilation on the fly) </p>
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">in</td><td>input <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">cv::Mat</a> for unary computation </td></tr>
    <tr><td class="paramname">out</td><td>output <a class="el" href="../../dc/d84/group__core__basic.html#ga599fe92e910c027be274233eccad7beb">cv::Scalar</a> for unary computation </td></tr>
    <tr><td class="paramname">args</td><td>compilation arguments for underlying compilation process. </td></tr>
  </table>
  </dd>
</dl>
</div>
</div>
<a id="ad35660e432c5ec676fe2830eb8a9651b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad35660e432c5ec676fe2830eb8a9651b">◆ </a></span>apply() <span class="overload">[4/6]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::GComputation::apply </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> </td>
          <td class="paramname"><em>in1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> </td>
          <td class="paramname"><em>in2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> &amp; </td>
          <td class="paramname"><em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d9/d29/group__gapi__compile__args.html#gaa4f8db4f55770e56cca42c38dacf8ffd">GCompileArgs</a> &amp;&amp; </td>
          <td class="paramname"><em>args</em> = <code>{}</code> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.GComputation.apply(</td><td class="paramname">callback[, args]</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Execute a binary computation (with compilation on the fly) </p>
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">in1</td><td>first input <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">cv::Mat</a> for binary computation </td></tr>
    <tr><td class="paramname">in2</td><td>second input <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">cv::Mat</a> for binary computation </td></tr>
    <tr><td class="paramname">out</td><td>output <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">cv::Mat</a> for binary computation </td></tr>
    <tr><td class="paramname">args</td><td>compilation arguments for underlying compilation process. </td></tr>
  </table>
  </dd>
</dl>
</div>
</div>
<a id="a4eb4b830d5cdf6891470a3b111b0e619"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4eb4b830d5cdf6891470a3b111b0e619">◆ </a></span>apply() <span class="overload">[5/6]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::GComputation::apply </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> </td>
          <td class="paramname"><em>in1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> </td>
          <td class="paramname"><em>in2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga599fe92e910c027be274233eccad7beb">cv::Scalar</a> &amp; </td>
          <td class="paramname"><em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d9/d29/group__gapi__compile__args.html#gaa4f8db4f55770e56cca42c38dacf8ffd">GCompileArgs</a> &amp;&amp; </td>
          <td class="paramname"><em>args</em> = <code>{}</code> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.GComputation.apply(</td><td class="paramname">callback[, args]</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Execute an binary computation (with compilation on the fly) </p>
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">in1</td><td>first input <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">cv::Mat</a> for binary computation </td></tr>
    <tr><td class="paramname">in2</td><td>second input <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">cv::Mat</a> for binary computation </td></tr>
    <tr><td class="paramname">out</td><td>output <a class="el" href="../../dc/d84/group__core__basic.html#ga599fe92e910c027be274233eccad7beb">cv::Scalar</a> for binary computation </td></tr>
    <tr><td class="paramname">args</td><td>compilation arguments for underlying compilation process. </td></tr>
  </table>
  </dd>
</dl>
</div>
</div>
<a id="acacdf438026f43ec0db3d84e5b02d340"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acacdf438026f43ec0db3d84e5b02d340">◆ </a></span>apply() <span class="overload">[6/6]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::GComputation::apply </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> &gt; &amp; </td>
          <td class="paramname"><em>ins</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> &gt; &amp; </td>
          <td class="paramname"><em>outs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d9/d29/group__gapi__compile__args.html#gaa4f8db4f55770e56cca42c38dacf8ffd">GCompileArgs</a> &amp;&amp; </td>
          <td class="paramname"><em>args</em> = <code>{}</code> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.GComputation.apply(</td><td class="paramname">callback[, args]</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Execute a computation with arbitrary number of inputs/outputs (with compilation on-the-fly). </p>
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ins</td><td>vector of input <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">cv::Mat</a> objects to process by the computation. </td></tr>
    <tr><td class="paramname">outs</td><td>vector of output <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">cv::Mat</a> objects to produce by the computation. </td></tr>
    <tr><td class="paramname">args</td><td>compilation arguments for underlying compilation process.</td></tr>
  </table>
  </dd>
</dl>
<p>Numbers of elements in ins/outs vectors must match numbers of inputs/outputs which were used to define this <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html" title="GComputation class represents a captured computation graph. GComputation objects form boundaries for ...">GComputation</a>. </p>
</div>
</div>
<a id="ab11bcc0578f9aa5ec8f8eaf6cda0dfa8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab11bcc0578f9aa5ec8f8eaf6cda0dfa8">◆ </a></span>compile() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html">GCompiled</a> cv::GComputation::compile </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d2/d75/namespacecv.html#a5f31109e95e8ff4ced55b5e85f885fb1">GMetaArgs</a> &amp;&amp; </td>
          <td class="paramname"><em>in_metas</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d9/d29/group__gapi__compile__args.html#gaa4f8db4f55770e56cca42c38dacf8ffd">GCompileArgs</a> &amp;&amp; </td>
          <td class="paramname"><em>args</em> = <code>{}</code> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Compile the computation for specific input format(s). </p>
<p>This method triggers compilation process and produces a new <a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html" title="Represents a compiled computation (graph). Can only be used with image / data formats &amp; resolutions i...">GCompiled</a> object which then can process data of the given format. Passing data with different format to the compiled computation will generate a run-time exception.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">in_metas</td><td>vector of input metadata configuration. Grab metadata from real data objects (like <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">cv::Mat</a> or <a class="el" href="../../dc/d84/group__core__basic.html#ga599fe92e910c027be274233eccad7beb">cv::Scalar</a>) using <a class="el" href="../../d3/d0c/group__gapi__meta__args.html#ga0d1b4f7d1dbc43b5ac9ddd6454348f0c">cv::descr_of()</a>, or create it on your own. </td></tr>
    <tr><td class="paramname">args</td><td>compilation arguments for this compilation process. Compilation arguments directly affect what kind of executable object would be produced, e.g. which kernels (and thus, devices) would be used to execute computation.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html" title="Represents a compiled computation (graph). Can only be used with image / data formats &amp; resolutions i...">GCompiled</a>, an executable computation compiled specifically for the given input parameters.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="../../d9/d29/group__gapi__compile__args.html">G-API Graph Compilation Arguments</a> </dd></dl>
</div>
</div>
<a id="a3c996ca8f04d5809b82191aae04a34ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3c996ca8f04d5809b82191aae04a34ac">◆ </a></span>compile() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename... Ts&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">auto cv::GComputation::compile </td>
          <td>(</td>
          <td class="paramtype">const Ts &amp;... </td>
          <td class="paramname"><em>metas</em></td><td>)</td>
          <td> -&gt; typename std::enable_if&lt;<a class="el" href="../../d2/daf/namespacecv_1_1detail.html#aa9a2d974aa7c71968bfd9649ee903a36">detail::are_meta_descrs</a>&lt;Ts...&gt;::value, <a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html">GCompiled</a>&gt;::type
    </td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.</p>
<p>Takes a variadic parameter pack with metadata descriptors for which a compiled object needs to be produced.</p>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html" title="Represents a compiled computation (graph). Can only be used with image / data formats &amp; resolutions i...">GCompiled</a>, an executable computation compiled specifically for the given input parameters. </dd></dl>
</div>
</div>
<a id="a86a31579919bfba49316f27093829abc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a86a31579919bfba49316f27093829abc">◆ </a></span>compile() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename... Ts&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">auto cv::GComputation::compile </td>
          <td>(</td>
          <td class="paramtype">const Ts &amp;... </td>
          <td class="paramname"><em>meta_and_compile_args</em></td><td>)</td>
          <td> -&gt; typename std::enable_if&lt;<a class="el" href="../../d2/daf/namespacecv_1_1detail.html#a573723d31cccc765fe39151fe46a3649">detail::are_meta_descrs_but_last</a>&lt;Ts...&gt;::value
                                &amp;&amp; std::is_same&lt;<a class="el" href="../../d9/d29/group__gapi__compile__args.html#gaa4f8db4f55770e56cca42c38dacf8ffd">GCompileArgs</a>, <a class="el" href="../../d2/daf/namespacecv_1_1detail.html#a54c86c866fa8c3de8a26cbbeaa22927f">detail::last_type_t</a>&lt;Ts...&gt; &gt;::value,
                                <a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html">GCompiled</a>&gt;::type
    </td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.</p>
<p>Takes a variadic parameter pack with metadata descriptors for which a compiled object needs to be produced, followed by GCompileArgs object representing compilation arguments for this process.</p>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html" title="Represents a compiled computation (graph). Can only be used with image / data formats &amp; resolutions i...">GCompiled</a>, an executable computation compiled specifically for the given input parameters. </dd></dl>
</div>
</div>
<a id="a53af72f7dafa8cbf416581628aaa32fd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a53af72f7dafa8cbf416581628aaa32fd">◆ </a></span>compileStreaming() <span class="overload">[1/5]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html">GStreamingCompiled</a> cv::GComputation::compileStreaming </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d2/d75/namespacecv.html#a5f31109e95e8ff4ced55b5e85f885fb1">GMetaArgs</a> &amp;&amp; </td>
          <td class="paramname"><em>in_metas</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d9/d29/group__gapi__compile__args.html#gaa4f8db4f55770e56cca42c38dacf8ffd">GCompileArgs</a> &amp;&amp; </td>
          <td class="paramname"><em>args</em> = <code>{}</code> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.GComputation.compileStreaming(</td><td class="paramname">callback[, args]</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.GComputation.compileStreaming(</td><td class="paramname">[, args]</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Compile the computation for streaming mode. </p>
<p>This method triggers compilation process and produces a new <a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html" title="Represents a computation (graph) compiled for streaming. ">GStreamingCompiled</a> object which then can process video stream data of the given format. Passing a stream in a different format to the compiled computation will generate a run-time exception.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">in_metas</td><td>vector of input metadata configuration. Grab metadata from real data objects (like <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">cv::Mat</a> or <a class="el" href="../../dc/d84/group__core__basic.html#ga599fe92e910c027be274233eccad7beb">cv::Scalar</a>) using <a class="el" href="../../d3/d0c/group__gapi__meta__args.html#ga0d1b4f7d1dbc43b5ac9ddd6454348f0c">cv::descr_of()</a>, or create it on your own.</td></tr>
    <tr><td class="paramname">args</td><td>compilation arguments for this compilation process. Compilation arguments directly affect what kind of executable object would be produced, e.g. which kernels (and thus, devices) would be used to execute computation.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html" title="Represents a computation (graph) compiled for streaming. ">GStreamingCompiled</a>, a streaming-oriented executable computation compiled specifically for the given input parameters.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="../../d9/d29/group__gapi__compile__args.html">G-API Graph Compilation Arguments</a> </dd></dl>
</div>
</div>
<a id="aad0eedf58f125efd3fe9ce61cebe6cfa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aad0eedf58f125efd3fe9ce61cebe6cfa">◆ </a></span>compileStreaming() <span class="overload">[2/5]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../da/dfe/exports_8hpp.html#a11b787c5fb3561e507d6779531bab28a">GAPI_WRAP</a> <a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html">GStreamingCompiled</a> cv::GComputation::compileStreaming </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d9/d29/group__gapi__compile__args.html#gaa4f8db4f55770e56cca42c38dacf8ffd">GCompileArgs</a> &amp;&amp; </td>
          <td class="paramname"><em>args</em> = <code>{}</code></td><td>)</td>
          <td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.GComputation.compileStreaming(</td><td class="paramname">callback[, args]</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.GComputation.compileStreaming(</td><td class="paramname">[, args]</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Compile the computation for streaming mode. </p>
<p>This method triggers compilation process and produces a new <a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html" title="Represents a computation (graph) compiled for streaming. ">GStreamingCompiled</a> object which then can process video stream data in any format. Underlying mechanisms will be adjusted to every new input video stream automatically, but please note that <em>not all</em> existing backends support this (see reshape()).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">args</td><td>compilation arguments for this compilation process. Compilation arguments directly affect what kind of executable object would be produced, e.g. which kernels (and thus, devices) would be used to execute computation.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html" title="Represents a computation (graph) compiled for streaming. ">GStreamingCompiled</a>, a streaming-oriented executable computation compiled for any input image format.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="../../d9/d29/group__gapi__compile__args.html">G-API Graph Compilation Arguments</a> </dd></dl>
</div>
</div>
<a id="aaadc813c176e6a992c76e51d07090cef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaadc813c176e6a992c76e51d07090cef">◆ </a></span>compileStreaming() <span class="overload">[3/5]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename... Ts&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">auto cv::GComputation::compileStreaming </td>
          <td>(</td>
          <td class="paramtype">const Ts &amp;... </td>
          <td class="paramname"><em>metas</em></td><td>)</td>
          <td> -&gt; typename std::enable_if&lt;<a class="el" href="../../d2/daf/namespacecv_1_1detail.html#aa9a2d974aa7c71968bfd9649ee903a36">detail::are_meta_descrs</a>&lt;Ts...&gt;::value, <a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html">GStreamingCompiled</a>&gt;::type
    </td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.GComputation.compileStreaming(</td><td class="paramname">callback[, args]</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.GComputation.compileStreaming(</td><td class="paramname">[, args]</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.</p>
<p>Takes a variadic parameter pack with metadata descriptors for which a compiled object needs to be produced.</p>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html" title="Represents a computation (graph) compiled for streaming. ">GStreamingCompiled</a>, a streaming-oriented executable computation compiled specifically for the given input parameters. </dd></dl>
</div>
</div>
<a id="aa2a3cae818b02d21ace48f348cb88a0a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa2a3cae818b02d21ace48f348cb88a0a">◆ </a></span>compileStreaming() <span class="overload">[4/5]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename... Ts&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">auto cv::GComputation::compileStreaming </td>
          <td>(</td>
          <td class="paramtype">const Ts &amp;... </td>
          <td class="paramname"><em>meta_and_compile_args</em></td><td>)</td>
          <td> -&gt; typename std::enable_if&lt;<a class="el" href="../../d2/daf/namespacecv_1_1detail.html#a573723d31cccc765fe39151fe46a3649">detail::are_meta_descrs_but_last</a>&lt;Ts...&gt;::value
                                &amp;&amp; std::is_same&lt;<a class="el" href="../../d9/d29/group__gapi__compile__args.html#gaa4f8db4f55770e56cca42c38dacf8ffd">GCompileArgs</a>, <a class="el" href="../../d2/daf/namespacecv_1_1detail.html#a54c86c866fa8c3de8a26cbbeaa22927f">detail::last_type_t</a>&lt;Ts...&gt; &gt;::value,
                                <a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html">GStreamingCompiled</a>&gt;::type
    </td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.GComputation.compileStreaming(</td><td class="paramname">callback[, args]</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.GComputation.compileStreaming(</td><td class="paramname">[, args]</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.</p>
<p>Takes a variadic parameter pack with metadata descriptors for which a compiled object needs to be produced, followed by GCompileArgs object representing compilation arguments for this process.</p>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html" title="Represents a computation (graph) compiled for streaming. ">GStreamingCompiled</a>, a streaming-oriented executable computation compiled specifically for the given input parameters. </dd></dl>
</div>
</div>
<a id="a731e812ec6ba458983dc10cc0df40325"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a731e812ec6ba458983dc10cc0df40325">◆ </a></span>compileStreaming() <span class="overload">[5/5]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename... Ts, int... IIs&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html">GStreamingCompiled</a> cv::GComputation::compileStreaming </td>
          <td>(</td>
          <td class="paramtype">const std::tuple&lt; Ts... &gt; &amp; </td>
          <td class="paramname"><em>meta_and_compile_args</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">detail::Seq&lt; IIs... &gt; </td>
          <td class="paramname"> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.GComputation.compileStreaming(</td><td class="paramname">callback[, args]</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.GComputation.compileStreaming(</td><td class="paramname">[, args]</td><td>)</td></tr></table>
</div><div class="memdoc">
</div>
</div>
<a id="a81667be7e7b03f8bcc534fa35e8e475e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a81667be7e7b03f8bcc534fa35e8e475e">◆ </a></span>recompile()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void cv::GComputation::recompile </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d2/d75/namespacecv.html#a5f31109e95e8ff4ced55b5e85f885fb1">GMetaArgs</a> &amp;&amp; </td>
          <td class="paramname"><em>in_metas</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d9/d29/group__gapi__compile__args.html#gaa4f8db4f55770e56cca42c38dacf8ffd">GCompileArgs</a> &amp;&amp; </td>
          <td class="paramname"><em>args</em> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>opencv2/gapi/<a class="el" href="../../d5/d8e/gcomputation_8hpp.html">gcomputation.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- HTML footer for doxygen 1.8.6-->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Apr 2 2021 11:36:43 for OpenCV by  <a href="http://www.doxygen.org/index.html">
<img alt="doxygen" class="footer" src="../../doxygen.png"/>
</a> 1.8.13
</small></address>
<script type="text/javascript">
//<![CDATA[
addTutorialsButtons();
//]]>
</script>
</body>
</html>
